package com.ruoyi.system.service;

import com.ruoyi.system.dto.ProjectAttachmentDownloadDTO;
import com.ruoyi.system.vo.ProjectAttachmentGroupVO;
import com.ruoyi.system.vo.ProjectAttachmentVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 项目附件服务接口
 * 
 * @author ruoyi
 * @since 2024-01-01
 */
public interface IProjectAttachmentService {

    /**
     * 获取项目所有附件（按分类分组）
     * 
     * @param projectId 项目ID
     * @return 按分类分组的附件列表
     */
    List<ProjectAttachmentGroupVO> getProjectAttachmentsByGroup(Long projectId);

    /**
     * 获取项目所有附件（平铺列表）
     * 
     * @param projectId 项目ID
     * @return 附件列表
     */
    List<ProjectAttachmentVO> getProjectAttachments(Long projectId);

    /**
     * 根据附件类型获取项目附件
     * 
     * @param projectId 项目ID
     * @param attachmentType 附件类型
     * @return 附件列表
     */
    List<ProjectAttachmentVO> getProjectAttachmentsByType(Long projectId, Integer attachmentType);

    /**
     * 批量下载项目附件
     * 
     * @param downloadDTO 下载参数
     * @param response HTTP响应
     */
    void downloadProjectAttachments(ProjectAttachmentDownloadDTO downloadDTO, HttpServletResponse response);
}
